package com.kstudio.videocapture.util;


public class KLoadBitmapAsync {
//    private final KLog log = new KLog("KLoadBitmapAsync");
//
//    public static final int INIT                = 0x0001;
//    public static final int INIT_OUTSIDE_ING    = 0x0003;
//    public static final int INIT_DONE           = 0x0004;
//
//    public static final int LOADING_DIRECTION_NONE  = 0x0000;
//    public static final int LOADING_DIRECTION_LEFT  = 0x0001;
//    public static final int LOADING_DIRECTION_RIGHT = 0x0002;
//
//    private static final int THREAD_STATE_READY         = 0x0001;
//    private static final int THREAD_STATE_RUNNING       = 0x0002;
//
//    private KLoadBitmapListener       mListener;
////    private ArrayList<KImageEditItem> mListData;
//    private int                       mListDataSize;
//    private int                       mListPos_LoadLeft;
//    private int                       mListPos_LoadRight;
//
//    private LinkedList<Integer> mLoadingLeft;
//    private LinkedList<Integer> mLoadingRight;
//    private int mLoadingDirect;
//
//    private AsyncTask  mAsyncTask;
//    private int        mAsyncState;
//
//    private int mBmWidth;
//    private int mBmHeight;
//
//    public interface KLoadBitmapListener {
//        void onDrawUpdate();
//        void onInitDone();
//    }
//
//    public KLoadBitmapAsync(KLoadBitmapListener l, ArrayList<KImageEditItem> listData) {
//        mListener = l;
//        mListData = listData;
//        mListDataSize = mListData.size();
//
//        mLoadingDirect = LOADING_DIRECTION_NONE;
//    }
//
//    /* Public Function */
//    private int mInitState;
//    private int mInSideLeft;
//    private int mInSideRight;
//    private int mOutSideLeft;
//    private int mOutSideRight;
//    private int mListBufferLength;
//
//    public void setInit(int listLeft, int listRight, int width, int height) {
//        mInitState = INIT;
//
//        mInSideLeft = listLeft;
//        mInSideRight = listRight;
//
//        mBmWidth = width;
//        mBmHeight = height;
//
//        mListBufferLength = (mInSideRight - mInSideLeft) * 2;
//        mOutSideLeft = ((mInSideLeft - mListBufferLength) < 0) ? 0 : mInSideLeft - mListBufferLength;
//        mOutSideRight = ((mInSideRight + mListBufferLength) > mListDataSize) ? mListDataSize : mInSideRight + mListBufferLength;
//
//        mAsyncState = THREAD_STATE_RUNNING;
//        mAsyncTask = new AsyncTask();
//        mAsyncTask.start();
//    }
//
//    public void setDirection(int direction) {
//        mLoadingDirect = direction;
//
//        if(mAsyncState == THREAD_STATE_READY) {
//            mAsyncState = THREAD_STATE_RUNNING;
//            mAsyncTask = new AsyncTask();
//            mAsyncTask.start();
//        }
//    }
//
//    public void stop() {
//        if(mAsyncState == THREAD_STATE_RUNNING) {
//            mAsyncTask.stopThread();
//            mAsyncState = THREAD_STATE_READY;
//        }
//    }
//
//    /* Private Function */
//    private class AsyncTask extends Thread {
//        public boolean running;
//
//        @Override
//        public void run() {
//            running = true;
//
//            while(running) {
//                KImageEditItem item = null;
//
//                if(mInitState == INIT) {
////                    Thread_Init();
//                    Thread_Init_temp();
//                } else if(mInitState == INIT_OUTSIDE_ING) {
//                    mInitState = INIT_DONE;
//                } else if(mInitState == INIT_DONE) {
//                    mListener.onInitDone();
//                    running = false;
//                } else if(mLoadingDirect == LOADING_DIRECTION_LEFT) {
//                    if(mLoadingLeft.size() > 0) {
//                        item = mListData.get(mLoadingLeft.poll());
//                    } else if(mLoadingRight.size() > 0) {
//
//                    } else {
//                        break;
//                    }
//                } else if(mLoadingDirect == LOADING_DIRECTION_RIGHT) {
//                    if(mLoadingLeft.size() > 0) {
//                        mLoadingLeft.poll();
//                    } else if(mLoadingRight.size() > 0) {
//
//                    } else {
//                        break;
//                    }
//                }
//
//                if(item != null) {
//
//                }
//            }
//
//            mAsyncState = THREAD_STATE_READY;
//        }
//
//        public void stopThread() {
//            running = false;
//        }
//    }
//
//    private void Thread_Init() {
//        mListPos_LoadLeft = -1;
//        mListPos_LoadRight = -1;
//
//        boolean existFirst = true;
//
//        for(int i = 0; i < mListDataSize; i++) {
//            KImageEditItem item = mListData.get(i);
//
//            if(item.getBitmap() != null) {
//                if(existFirst) {
//                    if(i < mOutSideLeft) {
//                        item.setBitmap(null);
//                    } else {
//                        mListPos_LoadLeft = i;
//                        existFirst = false;
//                    }
//                } else {
//                    if(i > mOutSideRight) {
//                        item.setBitmap(null);
//                    } else {
//                        mListPos_LoadRight = i;
//                    }
//                }
//
//                Bitmap bm = item.getBitmap();
//                if(bm != null && bm.getWidth() != mBmWidth && bm.getHeight() != mBmHeight) {
//                    Bitmap result = KUtil.resizedBitmapOnFit(bm, mBmWidth, mBmHeight);
//                    item.setBitmap(result);
//                    if(mListener != null) mListener.onDrawUpdate();
//                }
//            } else if(i >= mInSideLeft && i < mInSideRight) {
//                if(existFirst) {
//                    mListPos_LoadLeft = i;
//                    existFirst = false;
//                } else {
//                    mListPos_LoadRight = i;
//                }
//                Bitmap bm = KUtil.fastLoadBitmapResizedOnRatio(item.getPath(), mBmWidth, mBmHeight);
//                item.setBitmap(bm);
//                if(mListener != null) mListener.onDrawUpdate();
//            }
//        }
//
//        mInitState = INIT_OUTSIDE_ING;
//    }
//
//    private void Thread_Init_temp() {
//        for(int i = 0; i < mListDataSize; i++) {
//            KImageEditItem item = mListData.get(i);
//
//            if(item.getBitmap() != null) {
//                Bitmap bm = item.getBitmap();
//                if(bm != null && bm.getWidth() != mBmWidth && bm.getHeight() != mBmHeight) {
//                    Bitmap result = KUtil.resizedBitmapOnFit(bm, mBmWidth, mBmHeight);
//                    item.setBitmap(result);
//                    if(mListener != null) mListener.onDrawUpdate();
//                }
//            } else {
//                Bitmap bm = KUtil.fastLoadBitmapResizedOnRatio(item.getPath(), mBmWidth, mBmHeight);
//                item.setBitmap(bm);
//                if(mListener != null) mListener.onDrawUpdate();
//            }
//        }
//
//        mInitState = INIT_OUTSIDE_ING;
//    }
}
